Audio and microphone
The client selects audio independently from video and input. The current LGMP transport does not provide audio, so SPICE normally supplies it in an IDD setup. Selecting SPICE as the primary video transport also uses its audio provider.
Warning
Do not use Scream for a Looking Glass setup. Use the built-in classic SPICE or USB audio path. Scream over IVSHMEM can also conflict with the shared device used for Looking Glass frames.
Looking Glass offers two SPICE audio paths:
- USB audio (recommended)
Presents an emulated Looking Glass USB Audio Class 2 device to Windows over a SPICE USB channel. It supports stereo, quadraphonic, 5.1 and 7.1 playback using 24-bit PCM at up to 192 kHz. It also provides asynchronous playback feedback and a lower-latency clock relationship with supported Linux audio backends. This path is enabled by default when it is available.
- Classic SPICE audio
Uses a virtual guest sound card and SPICE playback and record channels. QEMU limits it to stereo, 16-bit samples at 48 kHz. Use it as a compatibility fallback when the emulated USB audio device is not available.
Set spice:audio=no to disable both paths.
USB audio setup
USB audio requires:
a client built with
libusbredirparser-0.5version 0.7.1 or newer;at least one unused SPICE USB redirection channel in the VM; and
a working client playback backend.
For libvirt, add a USB redirection device:
<redirdev bus='usb' type='spicevmc'/>
In virt-manager, this is a USB Redirector device using the SPICE channel. It is dedicated to the virtual Looking Glass audio device while USB audio is active.
The emulated USB audio device is enabled by default. Its settings are:
[spice]
audio=yes
usbAudio=yes
Playback supports stereo, quadraphonic, 5.1 and 7.1 speaker layouts using 24-bit PCM at sample rates up to 192 kHz. Recording supports stereo at up to 192 kHz.
After the device connects, select the Looking Glass USB Audio speakers as the Windows output device.
If USB audio could not be created at startup, the client falls back to classic SPICE audio and logs the reason. A working USB audio device also requires the SPICE USB redirection channel to connect; if the channel is absent, add it to the VM rather than reinstalling the Windows endpoint.
Classic SPICE setup
Add an Intel HDA sound device and a SPICE audio backend to the VM as shown in Keyboard/mouse/display/audio, then select the classic path:
[spice]
audio=yes
usbAudio=no
QEMU’s classic SPICE audio implementation exposes a fixed stereo format: two channels, 16-bit samples at 48 kHz. Use the emulated USB audio device when other sample rates, sample formats or channel layouts are required.
Microphone access
PipeWire supports playback and recording. The current PulseAudio backend does not provide microphone recording. Press ScrLk + E to toggle recording when it is available.
When a guest application opens the microphone, audio:micDefault controls
the response:
promptAsk before sending microphone audio. This is the default.
allowAllow requests automatically.
denyRefuse requests automatically.
Press ScrLk + C to cycle this policy. Keep
audio:micShowIndicator=yes to show when recording is active.
Latency settings
audio:periodSize requests the audio backend period in samples. The default
is 512; 0 requests a 10 ms period. Smaller values may reduce latency but also
make underruns more likely.
audio:latencyOffset applies only to classic SPICE audio. It adds safety
margin to the calculated minimum buffer; the default is 6 ms. Reduce it only
after confirming that classic SPICE playback remains free of dropouts under
load.
audio:resampler also applies only to classic SPICE audio. The default
auto setting chooses the appropriate path; the other choices are
libsamplerate and backend. The emulated USB audio device instead uses
feedback to adjust the Windows packet rate.
Set audio:debug=yes to log ring-buffer level, backend delay, clock feedback
and underrun or overrun counts. Disable it after diagnosis to keep the normal
log concise.